PLDs have increasingly proliferated in many areas of technology, such as data processing and signal processing applications. The inherent flexibility of PLDs and the user's ability to re-configure them have in part led to their popularity. System designers and even system end-users can program the PLDs and re-configure the functionality of part or all of the system. Re-configuring the system avoids costly and time-consuming re-design of the system or its various components or sub-systems.
Configuring a PLD typically involves providing configuration data to the PLD. The configuration data program the PLD to implement a wide variety of user-defined functions, ranging from standalone logic functions to SOPC. The user-defined functions may include blocks of hardware that perform particular functions. Generating the configuration data therefore entails incorporating user-defined hardware description into the SOPC description, and implementing the user-defined hardware in the PLD by generating appropriate interfaces to the user-defined hardware.
Conventional design tools typically require the user to manually intervene in the design process to comprehend the hardware description, often provided in one or more hardware description language (HDL) files, to generate the appropriate interfaces. This manual process introduces inefficiency and susceptibility to errors into the design of the SOPC or the final desired circuitry.